package com.java.star.mall.front.dao.mapper;

import com.java.star.mall.front.pojo.entity.Product;
import com.java.star.mall.front.pojo.param.SearchParam;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 商品Mapper接口
 */
@Repository
public interface ProductMapper {

    /**
     * 查询有轮播图的前5个商品
     */
    List<Product> listSwiperProduct();

    /**
     * 查询热门商品
     */
    List<Product> listHotProduct();

    /**
     * 根据分类Id查询商品列表
     */
    List<Product> listProductByCategoryId(Integer categoryId);

    /**
     * 根据商品id查询商品信息
     */
    Product getProductById(Integer id);

    /**
     * 扣减库存
     *
     * @param id  商品id
     * @param num 扣减数量
     */
    void reduceStock(@Param("id") Integer id, @Param("num") Integer num);

    /**
     * 条件查询商品信息
     *
     * @param searchParam 搜索参数
     * @return 商品列表
     */
    List<Product> listByCondition(SearchParam searchParam);
}
